﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Data;
using System.Data.SqlClient;

using Tong;
using Tong.DataOperation;
using System.Collections.Generic;
public partial class Activex_Hello_World : System.Web.UI.Page
{
    Data_CX_NEWS_QueryTable<Data_CX_NEWS> NewsOp = new Data_CX_NEWS_QueryTable<Data_CX_NEWS>();
    Linq查询DataContext LDB = new Linq查询DataContext();

    protected void Page_Load(object sender, EventArgs e)
    {
        Data_CX_NEWS oo = new Data_CX_NEWS()
        {
            CX_NEWS_Name = "测试用的",
            CX_NEWS_Class_Edit = "没有啊",
            CX_NEWS_Cont = "dddddd",
            CX_NEWS_Class_id = 50,
            CX_NEWS_PublicTime = DateTime.Now,
            
        };
        NewsOp.OrderBy = "order by " + Data_CX_NEWS._CX_NEWS_id + " desc";
         

        if (NewsOp.Operate_inser(oo))
        {

        }
        else
        {
            Response.Write(NewsOp.ErrorInfo);
        }

        //NewsOp.Oper_SelectToObject(100);
        //Response.Write(NewsOp.ErrorInfo);
        Data_CX_Column_QueryTable<Data_CX_Column> CX_Counlmn = new Data_CX_Column_QueryTable<Data_CX_Column>();
        CX_Counlmn.OrderBy="order by "+Data_CX_Column._CX_Column_id +" desc";
        Data_CX_NEWS_Class_QueryTable<Data_CX_NEWS_Class> CX_Newsclass = new Data_CX_NEWS_Class_QueryTable<Data_CX_NEWS_Class>();

       Data_CX_NEWS[] p =  NewsOp.Oper_SelectToObject(5, Data_CX_NEWS_Class._CX_NEWS_Class_id + "='" +
                                                    CX_Newsclass.Oper_SelectToObject(1, Data_CX_Column._CX_Column_id + "=" +
                                                    CX_Counlmn.Oper_SelectToObject(1)[0].CX_Column_id)[0].CX_NEWS_Class_id + "'");

       CX_Counlmn.OrderBy = "order by " + Data_CX_Column._CX_Column_id + " ";


        
        GridView1.DataSource =CX_Counlmn.Oper_SelectToObject( 20).Skip(5).Take(3);
       GridView1.DataBind();
    }



}









#region 用于数据表操作的接口
/// <summary>
/// 用于数据表操作的接口
/// </summary>
/// <typeparam name="T">当前操作数据库表在 项目中的 映射 类型</typeparam>
internal interface DataIQueryTable<T>
{

    /// <summary>
    /// 要初始化排序条件
    /// </summary>
    string OrderBy { get; set; }

    /// <summary>
    /// 出错的信息
    /// </summary>
    string ErrorInfo { get; set; }


    /// <summary>
    /// 用于实现插入的方法
    /// </summary>
    /// <param name="t">更新的对象</param>
    /// <returns></returns>
    bool Operate_inser(T t);

    /// <summary>
    /// 更新数据
    /// </summary>
    /// <param name="t">更新的对象</param>
    /// <returns></returns>
    bool Operate_update(T t);

    /// <summary>
    /// 传入 实例化的对象的主键值 此对象一定要指定主键
    /// </summary>
    /// <param name="t">实例化的数据库表对象</param>
    /// <returns></returns>
    DataSet Operate_Select(T DataTable_Obj);

    /// <summary>
    /// 传入一个 ID 值 用于得这个ID 值下的所有 数据
    /// </summary>
    /// <param name="ID"></param>
    /// <returns></returns>
    DataSet Oper_Select(string ID);

    /// <summary>
    /// 传入ID 和反回名 返回一个ID 的一个字段的值
    /// </summary>
    /// <param name="ID">ID</param>
    /// <param name="CoulmnName">字段名</param>
    /// <returns></returns>
    DataSet Oper_Select(string ID, string CoulmnName);

    /// <summary>
    ///  传入字段名得到这个字段在表里的记录,只有一个字段 
    ///  返回 DataSet
    /// </summary>
    /// <param name="CoulmnName">字段名  能在表里找到</param>
    /// <param name="RecordNum">读出条数</param>
    /// <returns></returns>
    DataSet Oper_Select(string CoulmnName, int RecordNum);


    /// <summary>
    /// 传入字段集合 返回条数据
    /// </summary>
    /// <param name="CoulmnName">字段的数据组 多个用</param>
    /// <param name="RecordNum">得到记录的条数</param>
    /// <returns></returns>
    DataSet OperSelectN(string[] CoulmnName, int RecordNum);

    /// <summary>
    ///  传入字段名得到这个字段在表里的记录,只有一个字段 
    ///  返回 DataSet
    /// </summary>
    /// <param name="CoulmnName">字段名  能在表里找到</param>
    /// <param name="RecordNum">读出条数</param>
    /// <param name="Where">条件 如 newsid!="" and 0=0 </param>
    /// <returns></returns>
    DataSet Oper_Select(string CoulmnName, int RecordNum, string Where);


    /// <summary>
    /// 传入字段集合 返回条数据
    /// </summary>
    /// <param name="CoulmnName">字段的数据组 多个用</param>
    /// <param name="RecordNum">得到记录的条数</param>
    /// <param name="Where">条件 如 newsid!="" and 0=0 </param>
    /// <returns></returns>
    DataSet OperSelectN(string[] CoulmnName, int RecordNum, string Where);



    /// <summary>
    /// 执行SQL语句 返回dataSet
    /// </summary>
    /// <typeparam name="Tab">数据表</typeparam>
    /// <param name="Sql">执行的SQL</param>
    /// <returns></returns>
    DataSet ExecuteQuery(string Sql);


}

//#region 定义类型 定义类型  ##ClassName##  的操作方法 
///// <summary>
///// 用于对相应表 ##ClassName## 进行操作的类弄
///// </summary>
///// <typeparam name="T">表类型对象</typeparam>
//[System.ComponentModel.DataObject]
//public class Data_##ClassName##_QueryTable<T> : DataIQueryTable<Data_##ClassName##> where T : Data_##ClassName##, new()
//{
//    /// <summary>
//    /// 实例化对象
//    /// </summary>
//    private T DataClass = new  T(); 

//    /// <summary>
//    /// 数据操作常用方法
//    /// </summary>
//    private Tong.TongUse TextData = new TongUse();

//        private string orderBy;
//    /// <summary>
//    /// 要初始化排序条件
//    /// </summary>
//    public string OrderBy
//    {
//        get
//        {
//            return orderBy;
//        }
//        set
//        {
//            orderBy = value;
//        }
//    }

//    private  string errorInfo="";
//    /// <summary>
//    /// 出错的信息
//    /// </summary>
//    public string ErrorInfo
//    {
//        get
//        {
//            return errorInfo;
//        }
//        set
//        {
//            errorInfo = value;
//        }
//    }

//    /// <summary>
//    /// 用于实现插入的方法
//    /// </summary>
//    /// <param name="t">更新的对象</param>
//    /// <returns></returns>
//    public bool Operate_inser(Data_##ClassName## t)
//    {
//        //##Operate_inser##
//    }

//    /// <summary>
//    /// 更新数据
//    /// </summary>
//    /// <param name="t">更新的对象</param>
//    /// <returns></returns>
//    public bool Operate_update(Data_##ClassName## t)
//    {
//        //##Operate_update##
//    }

//    /// <summary>
//    /// 传入 实例化的对象的主键值 此对象一定要指定主键
//    /// </summary>
//    /// <param name="t">实例化的数据库表对象</param>
//    /// <returns></returns>
//    public DataSet Operate_Select(Data_##ClassName## DataTable_Obj)
//    {


//            SqlDataAdapter MyDa = new SqlDataAdapter("",TextData.SqlConnStr);
//            MyDa.SelectCommand.Connection = TextData.MySql;
//            MyDa.SelectCommand.CommandType = CommandType.Text;
//            #region ##ClassName## 的查询方法
//            //##Operate_Operate_Select_Obj##
//            #endregion

//            DataSet MyDs = new DataSet();
//            try
//            {
//                MyDa.Fill(MyDs);
//            }
//            catch (Exception ex)//資料填充時的異常處理
//            {
//                if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//                {
//                    TextData.MySql.Close();
//                }
//                MyDs = null;
//                ErrorInfo+="执行查询操作ExecuteQuery(string Sql)时出现错误"+ex.Message;

//            }

//            if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//            {
//                TextData.MySql.Close();

//            }
//            return MyDs;


//    }
//    /// <summary>
//    /// 传入一个 ID 值 用于得这个ID 值下的所有 数据
//    /// </summary>
//    /// <param name="ID"></param>
//    /// <returns></returns>
//    public DataSet Oper_Select(string ID)
//    {

//            SqlDataAdapter MyDa = new SqlDataAdapter("",TextData.SqlConnStr);
//            MyDa.SelectCommand.Connection = TextData.MySql;
//            MyDa.SelectCommand.CommandType = CommandType.Text;

//            #region ##ClassName## 的查询方法
//            //##Operate_Operate_Select_ID##
//            #endregion




//            DataSet MyDs = new DataSet();
//            try
//            {
//                MyDa.Fill(MyDs);
//            }
//            catch (Exception ex)//資料填充時的異常處理
//            {
//                if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//                {
//                    TextData.MySql.Close();
//                }
//                MyDs = null;
//                ErrorInfo+="执行查询操作ExecuteQuery(string Sql)时出现错误"+ex.Message;

//            }

//            if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//            {
//                TextData.MySql.Close();

//            }
//            return MyDs;
//    }


//    /// <summary>
//    ///  传入字段名得到这个字段在表里的记录,只有一个字段 
//    ///  返回 DataSet
//    /// </summary>
//    /// <param name="CoulmnName">字段名  能在表里找到</param>
//    /// <param name="RecordNum">读出条数</param>
//    /// <returns></returns>
//    public DataSet Oper_Select(string ID, string CoulmnName)
//    {


//            SqlDataAdapter MyDa = new SqlDataAdapter("",TextData.SqlConnStr);
//            MyDa.SelectCommand.Connection = TextData.MySql;
//            MyDa.SelectCommand.CommandType = CommandType.Text;

//            #region ##ClassName## 的查询方法
//            //##Operate_Operate_Select_IDAndCoulmnName##
//            #endregion


//            DataSet MyDs = new DataSet();
//            try
//            {
//                MyDa.Fill(MyDs);
//            }
//            catch (Exception ex)//資料填充時的異常處理
//            {
//                if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//                {
//                    TextData.MySql.Close();
//                }
//                MyDs = null;
//                ErrorInfo+="执行查询操作ExecuteQuery(string Sql)时出现错误"+ex.Message;

//            }

//            if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//            {
//                TextData.MySql.Close();

//            }
//            return MyDs;
//    }
//    /// <summary>
//    /// 字段名 返回一个字段的值 调用条数
//    /// </summary>
//    /// <param name="ID">字段名</param>
//    /// <param name="CoulmnName">调用条数</param>
//    /// <returns></returns>
//    public DataSet Oper_Select(string CoulmnName, int RecordNum)
//    {

//            SqlDataAdapter MyDa = new SqlDataAdapter("",TextData.SqlConnStr);
//            MyDa.SelectCommand.Connection = TextData.MySql;
//            MyDa.SelectCommand.CommandType = CommandType.Text;

//            #region ##ClassName## 的查询方法
//            //##Operate_Operate_Select_CoulmnNameAndRecordNum##

//            #endregion




//            DataSet MyDs = new DataSet();
//            try
//            {
//                MyDa.Fill(MyDs);
//            }
//            catch (Exception ex)//資料填充時的異常處理
//            {
//                if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//                {
//                    TextData.MySql.Close();
//                }
//                MyDs = null;
//                ErrorInfo+="执行查询操作ExecuteQuery(string Sql)时出现错误"+ex.Message;

//            }

//            if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//            {
//                TextData.MySql.Close();

//            }
//            return MyDs;
//    }
//    /// <summary>
//    /// 传入字段集合 返回条数据
//    /// </summary>
//    /// <param name="CoulmnName">字段的数组  数组长度为0 为 得到全部的字段  </param>
//    /// <param name="RecordNum">得到记录的条数</param>
//    /// <returns></returns>
//    public DataSet OperSelectN(string[] CoulmnName, int RecordNum)
//    {
//            SqlDataAdapter MyDa = new SqlDataAdapter("",TextData.SqlConnStr);
//            MyDa.SelectCommand.Connection = TextData.MySql;
//            MyDa.SelectCommand.CommandType = CommandType.Text;

//            #region ##ClassName## 的查询方法

//            string Cloumn = "";
//            for(int i=0;i<CoulmnName.Length;i++)
//            {
//                Cloumn+=CoulmnName[i].ToString()+",";
//            }

//            if(Cloumn!="")
//            {
//                Cloumn = Cloumn.Substring(0,Cloumn.Length);
//            }
//            else
//            {
//                Cloumn="*";
//            }

//            //##Operate_Operate_Select_CoulmnName[]AndRecordNum##

//            #endregion




//            DataSet MyDs = new DataSet();
//            try
//            {
//                MyDa.Fill(MyDs);
//            }
//            catch (Exception ex)//資料填充時的異常處理
//            {
//                if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//                {
//                    TextData.MySql.Close();
//                }
//                MyDs = null;
//                ErrorInfo+="执行查询操作ExecuteQuery(string Sql)时出现错误"+ex.Message;

//            }

//            if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//            {
//                TextData.MySql.Close();

//            }
//            return MyDs;
//    }
//        /// <summary>
//    ///  传入多个字段名得到这个字段在表里的记录,只有一个字段 
//    ///  返回 DataSet
//    /// </summary>
//    /// <param name="CoulmnName">字段名  能在表里找到</param>
//    /// <param name="RecordNum">读出条数</param>
//    /// <param name="Where">条件 如 newsid!="" and 0=0 </param>
//    /// <returns></returns>
//    public DataSet Oper_Select(string CoulmnName, int RecordNum, string Where)
//    {

//            SqlDataAdapter MyDa = new SqlDataAdapter("",TextData.SqlConnStr);
//            MyDa.SelectCommand.Connection = TextData.MySql;
//            MyDa.SelectCommand.CommandType = CommandType.Text;

//            #region ##ClassName## 的查询方法
//            //##Operate_Operate_Select_CoulmnNameAndRecordNum_Where##
//            #endregion




//            DataSet MyDs = new DataSet();
//            try
//            {
//                MyDa.Fill(MyDs);
//            }
//            catch (Exception ex)//資料填充時的異常處理
//            {
//                if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//                {
//                    TextData.MySql.Close();
//                }
//                MyDs = null;
//                ErrorInfo+="执行查询操作ExecuteQuery(string Sql)时出现错误"+ex.Message;

//            }

//            if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//            {
//                TextData.MySql.Close();

//            }
//            return MyDs;
//    }

//        /// <summary>
//    ///  传入字段集合 返回条数据
//    ///  返回 DataSet
//    /// </summary>
//    /// <param name="CoulmnName">字段名  能在表里找到 字段的数组  数组长度为0 为 得到全部的字段</param>
//    /// <param name="RecordNum">读出条数</param>
//    /// <param name="Where">条件 如 newsid!="" and 0=0 </param>
//    /// <returns></returns>
//    public DataSet OperSelectN(string[] CoulmnName, int RecordNum, string Where)
//    {

//            SqlDataAdapter MyDa = new SqlDataAdapter("",TextData.SqlConnStr);
//            MyDa.SelectCommand.Connection = TextData.MySql;
//            MyDa.SelectCommand.CommandType = CommandType.Text;

//            #region ##ClassName## 的查询方法
//             string Cloumn = "";
//            for(int i=0;i<CoulmnName.Length;i++)
//            {
//                Cloumn+=CoulmnName[i].ToString()+",";
//            }

//            if(Cloumn!="")
//            {
//                Cloumn = Cloumn.Substring(0,Cloumn.Length);
//            }
//            else
//            {
//                Cloumn="*";
//            }
//            //##Operate_Operate_Select_CoulmnName[]AndRecordNum_where##
//            #endregion




//            DataSet MyDs = new DataSet();
//            try
//            {
//                MyDa.Fill(MyDs);
//            }
//            catch (Exception ex)//資料填充時的異常處理
//            {
//                if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//                {
//                    TextData.MySql.Close();
//                }
//                MyDs = null;
//                ErrorInfo+="执行查询操作ExecuteQuery(string Sql)时出现错误"+ex.Message;

//            }

//            if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//            {
//                TextData.MySql.Close();

//            }
//            return MyDs;
//    }

//    /// <summary>
//    /// 执行SQL语句 返回dataSet
//    /// </summary>
//    /// <typeparam name="Tab">数据表</typeparam>
//    /// <param name="Sql">执行的SQL</param>
//    /// <returns></returns>
//    public DataSet ExecuteQuery(string Sql)
//    {

//            SqlDataAdapter MyDa = new SqlDataAdapter("",TextData.SqlConnStr);
//            MyDa.SelectCommand.Connection = TextData.MySql;
//            MyDa.SelectCommand.CommandType = CommandType.Text;

//            #region ##ClassName## 的查询方法
//            //##Operate_Operate_Select_Sql##
//            #endregion



//            DataSet MyDs = new DataSet();
//            try
//            {
//                MyDa.Fill(MyDs);
//            }
//            catch (Exception ex)//資料填充時的異常處理
//            {
//                if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//                {
//                    TextData.MySql.Close();
//                }
//                MyDs = null;
//                ErrorInfo+="执行查询操作ExecuteQuery(string Sql)时出现错误"+ex.Message;

//            }

//            if (TextData.MySql.State == ConnectionState.Open)///ConnectionState 得到當前資料源聯接的狀態
//            {
//                TextData.MySql.Close();

//            }
//            return MyDs;
//    }

//}

//#endregion
#endregion
